An abstract machine for concurrent haskell with futures

نویسنده

  • David Sabel
چکیده

We show how Sestoft’s abstract machine for lazy evaluation of purely functional programs can be extended to evaluate expressions of the calculus CHF – a process calculus that models Concurrent Haskell extended by imperative and implicit futures. The abstract machine is modularly constructed by first adding monadic IO-actions to the machine and then in a second step we add concurrency. Our main result is that the abstract machine coincides with the original operational semantics of CHF, w.r.t. mayand should-convergence.

برای دانلود رایگان متن کامل این مقاله و بیش از 32 میلیون مقاله دیگر ابتدا ثبت نام کنید

ثبت نام

اگر عضو سایت هستید لطفا وارد حساب کاربری خود شوید

منابع مشابه

On Conservativity of Concurrent Haskell

The calculus CHF models Concurrent Haskell extended by concurrent, implicit futures. It is a lambda and process calculus with concurrent threads, monadic concurrent evaluation, and includes a pure functional lambda-calculus PF which comprises data constructors, caseexpressions, letrec-expressions, and Haskell’s seq. Our main result is conservativity of CHF as extension of PF. This allows us to ...

متن کامل

On Proving the Equivalence of Concurrency Primitives

Various concurrency primitives have been added to sequential programming languages, in order to turn them concurrent. Prominent examples are concurrent buffers for Haskell, channels in Concurrent ML, joins in JoCaml, and handled futures in Alice ML. Even though one might conjecture that all these primitives provide the same expressiveness, proving this equivalence is an open challenge in the ar...

متن کامل

Transactional Tasks: Parallelism in Software Transactions

Many programming languages, such as Clojure, Scala, and Haskell, support different concurrency models. In practice these models are often combined, however the semantics of the combinations are not always well-defined. In this paper, we study the combination of futures and Software Transactional Memory. Currently, futures created within a transaction cannot access the transactional state safely...

متن کامل

Eecient Strictness Analysis of Haskell in Haskell Using Abstract Reduction

The extraction of strictness information marks an indispensable element of an eecient compilation of lazy functional languages like Haskell. Based on the method of abstract reduction we have developed an eecient strictness analyser for a core language of Haskell. It is completely written in Haskell and compares favourably with known implementations. The implementation is based on the G #-machin...

متن کامل

Deadlocks and Livelocks in Concurrent Objects with Futures

We study FJf, a concurrent object calculus with future types and operations for getting the values and releasing the control. Programs in FJf may manifest locks (deadlocks or livelocks) due to badly programmed release points. In order to statically detect possible misbehaviours, we develop a technique for the lock analysis based on contracts, which are abstract descriptions of method’s behaviou...

متن کامل

ذخیره در منابع من


  با ذخیره ی این منبع در منابع من، دسترسی به آن را برای استفاده های بعدی آسان تر کنید

عنوان ژورنال:

دوره   شماره 

صفحات  -

تاریخ انتشار 2012